Microsoft Technologies View এ Security এবং Permissions কনফিগার করা গাইড ও নোট

357

SQL Server-এ Views (ভিউ) একটি গুরুত্বপূর্ণ ডেটাবেস অবজেক্ট, যা একটি বা একাধিক টেবিলের ডেটা সংযুক্ত করে একটি ভার্চুয়াল টেবিল তৈরি করে। ভিউ ডেটাবেসের ব্যবহারকারীদের জন্য সহজতর ডেটা অ্যাক্সেস ও ম্যানিপুলেশনের সুবিধা প্রদান করে, তবে সঠিক নিরাপত্তা (Security) এবং অনুমতি (Permissions) কনফিগারেশন অত্যন্ত গুরুত্বপূর্ণ, কারণ ভুল অনুমতি ডেটা প্রাইভেসি ও নিরাপত্তার জন্য হুমকি হতে পারে। এই গাইডে আমরা ভিউ তৈরির পর তার নিরাপত্তা এবং অনুমতি কিভাবে কনফিগার করতে হয় তা দেখব।


1. Views এর নিরাপত্তা

View-এ নিরাপত্তা কনফিগারেশন করার সময় মূল লক্ষ্য থাকে ভিউ-এর মাধ্যমে কনটেন্ট কিভাবে ফিল্টার বা প্রিভিলেজড ডেটা কিভাবে সীমাবদ্ধ করা যায়। এটি নির্ভর করে কিভাবে আপনি ভিউ তৈরি করেছেন এবং কিভাবে ভিউ-কে অ্যাক্সেস করা যাবে।

1.1. Views এর মাধ্যমে ডেটা ফিল্টারিং

ভিউ ব্যবহারকারীদের কেবলমাত্র প্রয়োজনীয় ডেটা অ্যাক্সেসের জন্য উপযুক্ত একটি মাধ্যম হিসেবে কাজ করতে পারে। আপনি WHERE ক্লজ ব্যবহার করে ভিউ এর মাধ্যমে শুধুমাত্র নির্দিষ্ট ডেটা প্রদান করতে পারেন, যা ব্যবহারকারীদের নিরাপত্তার জন্য সহায়ক।

উদাহরণ:

CREATE VIEW Employees_Above_Age_30 AS
SELECT Name, Age, Department
FROM Employees
WHERE Age > 30;

এখানে, এই ভিউটি শুধুমাত্র ৩০ বছরের বেশি বয়সী কর্মচারীদের তথ্য দেখাবে। এতে কোনও ব্যবহারকারী যদি এই ভিউ অ্যাক্সেস করেন, তবে তারা শুধু সেই তথ্যই দেখতে পাবেন, যা আপনি ফিল্টার করেছেন।

1.2. Views-এর মাধ্যমে Data Masking

SQL Server এ Dynamic Data Masking ফিচার ব্যবহার করে আপনি ভিউ-এর মধ্যে কিছু নির্দিষ্ট কলামগুলো মাস্ক করে দিতে পারেন। এটি ডেটা অ্যাক্সেসের সময় ব্যবহারকারীর নির্দিষ্ট প্রিভিলেজের উপর ভিত্তি করে ডেটা সেক্রেট রাখার জন্য ব্যবহৃত হয়।

উদাহরণ:

CREATE VIEW Masked_Employee_Data AS
SELECT Name, Age, 
       CONCAT('***-**-', SUBSTRING(SocialSecurityNumber, 8, 4)) AS Masked_SSN
FROM Employees;

এখানে, SocialSecurityNumber কলামের শেষ অংশ মাস্ক করা হয়েছে, শুধুমাত্র একটি নির্দিষ্ট অংশ প্রদর্শিত হচ্ছে। এতে করে সংবেদনশীল ডেটা নিরাপদ থাকে।


2. Views-এ Permissions কনফিগারেশন

Views-এ নিরাপত্তা কনফিগার করতে হলে আপনাকে অবশ্যই ব্যবহারকারীদের জন্য নির্দিষ্ট Permissions সেট করতে হবে। SQL Server এ আপনাকে বিভিন্ন স্তরের অনুমতি প্রদান করতে হয়, যেমন SELECT, INSERT, UPDATE, DELETE

2.1. Granting Permissions to a View

GRANT কমান্ড ব্যবহার করে আপনি ভিউ-এর জন্য অনুমতি দিতে পারেন। আপনি নির্দিষ্ট ইউজার বা রোলকে অনুমতি প্রদান করতে পারবেন, যা তাদের ভিউ থেকে ডেটা অ্যাক্সেস করতে বা সংশোধন করতে সহায়তা করবে।

উদাহরণ:

GRANT SELECT ON VIEW Employees_Above_Age_30 TO User1;

এখানে, User1-কে Employees_Above_Age_30 ভিউ থেকে SELECT করার অনুমতি দেওয়া হয়েছে।

2.2. Revoke Permissions from a View

আপনি যদি পূর্বে প্রদত্ত অনুমতি প্রত্যাহার করতে চান, তাহলে REVOKE কমান্ড ব্যবহার করবেন।

উদাহরণ:

REVOKE SELECT ON VIEW Employees_Above_Age_30 TO User1;

এখানে, User1 থেকে Employees_Above_Age_30 ভিউ-এর SELECT অনুমতি তুলে নেওয়া হয়েছে।

2.3. Deny Permissions to a View

DENY কমান্ড ব্যবহার করে আপনি একটি ব্যবহারকারী বা রোলকে নির্দিষ্ট ভিউ-এর উপর অ্যাক্সেস পুরোপুরি নিষিদ্ধ করতে পারেন। এটি REVOKE এর চেয়ে শক্তিশালী, কারণ এটি ব্যবহারকারীকে সেই নির্দিষ্ট অনুমতি সম্পূর্ণরূপে প্রত্যাখ্যান করে।

উদাহরণ:

DENY DELETE ON VIEW Employees_Above_Age_30 TO User1;

এখানে, User1 কে Employees_Above_Age_30 ভিউ থেকে DELETE অনুমতি নিষিদ্ধ করা হয়েছে।


3. Views এবং Security Context

ভিউ ব্যবহারের সময়, Security Context সঠিকভাবে সেট করা অত্যন্ত গুরুত্বপূর্ণ, বিশেষত যদি আপনি EXECUTE AS কিওয়ার্ড ব্যবহার করে ভিউ চালাচ্ছেন। এটি ভিউ চালানোর সময় ব্যবহারকারীর ডিফল্ট প্রিভিলেজের বাইরে গিয়ে ডেটা অ্যাক্সেসের জন্য অন্য ব্যবহারকারীর অনুমতি ব্যবহার করতে সক্ষম।

3.1. EXECUTE AS কিওয়ার্ড ব্যবহার

আপনি যদি ভিউ-এর মাধ্যমে নির্দিষ্ট নিরাপত্তা কনটেক্সট অ্যাক্সেস করতে চান, তাহলে EXECUTE AS কিওয়ার্ড ব্যবহার করতে পারেন।

উদাহরণ:

CREATE VIEW Employees_Above_Age_30
AS
SELECT Name, Age, Department
FROM Employees
WHERE Age > 30
WITH EXECUTE AS 'db_owner';

এখানে, ভিউটি চালানোর সময় db_owner ব্যবহারকারীর অনুমতি ব্যবহার হবে, যা ভিউ-এ থাকা ডেটার জন্য উচ্চতর অনুমতি দেয়।


4. Ownership Chaining

Ownership Chaining SQL Server এ একটি নিরাপত্তা ফিচার, যা ভিউ বা প্রক্রিয়া (Procedure) অথবা টেবিলের মালিকানার ক্ষেত্রে নিরাপত্তা নিশ্চিত করতে সাহায্য করে। এটি তখন ব্যবহৃত হয় যখন একটি ভিউ অন্য টেবিলের ডেটা অ্যাক্সেস করতে চায়, তবে ভিউ এবং টেবিলের মালিক একই না হলে।

উদাহরণ: যদি আপনার কাছে দুটি স্কিমা থাকে, যেমন HR এবং Finance, এবং আপনি একটি ভিউ তৈরি করতে চান যা Finance স্কিমা থেকে ডেটা অ্যাক্সেস করবে, তবে উভয়ের মালিকানা যদি একই না হয়, তাহলে ভিউতে Ownership Chaining সক্রিয় থাকতে হবে।

SET CONTEXT INFO 'HR';
CREATE VIEW Employees_Finance AS
SELECT Name, Salary
FROM Finance.Employees;

এখানে, যদি HR স্কিমার মালিক ভিউ চালায়, তবে এটি Finance স্কিমার ডেটা অ্যাক্সেস করতে পারবে যদি উভয়ের মালিকানা একই থাকে।


সারাংশ

ভিউ তৈরির সময় Security এবং Permissions কনফিগার করা অত্যন্ত গুরুত্বপূর্ণ, কারণ এটি ডেটা অ্যাক্সেস নিয়ন্ত্রণ এবং সংবেদনশীল তথ্য সুরক্ষিত রাখতে সাহায্য করে। সঠিকভাবে GRANT, REVOKE, এবং DENY কমান্ড ব্যবহার করে আপনি একটি ভিউ-এর অ্যাক্সেস কাস্টমাইজ করতে পারেন এবং Ownership Chaining এর মাধ্যমে মালিকানা সম্পর্কিত নিরাপত্তা নিশ্চিত করতে পারেন।

Content added By
Promotion

Are you sure to start over?

Loading...